#ifndef _TCP_SERVER_H__
#define _TCP_SERVER_H__
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#include <sys/stat.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <signal.h>

#define ARR 20

enum red
{
    EXIT = 0,
    REGISTER = 1, // 注册成功
    ERROR = -1 , //失败错误码
    LOGIN = 2, // 登录成功
    FIND = -2,
    ALR_LOG = 3,//已用户在线
    ADD = 4, //添加联系人
    SEE = 5,    //查看联系人
    SEARCH = 6, //搜索联系人
    DELETE = 7,//删除联系人
    UPDATE = 8,//更新联系人
    Y = 9,
    N = 10,
};
typedef struct Online
{
    int signal;
    char use[ARR];
    char passwd[ARR];

    int id;
    char name[ARR];
    int age;
    char tel[ARR];
    char addr[ARR];
    char mailbox[ARR];

    int cfd;
} online;

// typedef struct Msg
// {
//     char
// }
extern int create_tcp_server(char *ip, int prot); // 创建tcp的服务器
extern void set_nonblock(int fd);                 // 设置非阻塞
extern void menu();//主界面选项
extern void login_opt();
extern int change(char *s);
extern char *rc4_encrypt(char *data);
extern void private_input(char *pass);
#endif